/*
 * @Author: 13938960424 1758142861@qq.com
 * @Date: 2023-10-27 14:03:37
 * @LastEditors: 13938960424 1758142861@qq.com
 * @LastEditTime: 2023-11-03 17:49:48
 * @FilePath: /sjf/new-xshell/muduo/log/logger.hpp
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
/**
 * 对于__FILE__ 表示的是当前的程序文件
 * 对于__LINE__ 表示的是当前所运行的行号
 * __VA_ARGS__ 表示的是不定参数，对应的是format
 * 然后__VA_ARGS__前加上## 表示的是如果参数只有一个，也可打印
 */
#ifndef _M_LOGGER_H__
#define _M_LOGGER_H__

#include <iostream>
#include <ctime>

#define INF 0
#define DBG 1
#define ERR 2
#define DEFAULT_LOG_LEVEL INF

#define LOG(level,format,...) do{\
    if(DEFAULT_LOG_LEVEL > level) break;\
    time_t t = time(nullptr);\
    struct tm *it = localtime(&t);\
    char buff[32] = {0};\
    strftime(buff,31,"%H:%H:%S",it);\
    fprintf(stdout,"[%s:%s:%d]" format "\n", buff,__FILE__,__LINE__,##__VA_ARGS__);\
}while(0)

#define INF_LOG(format,...) LOG(INF,format,##__VA_ARGS__)
#define DBG_LOG(format,...) LOG(DBG,format,##__VA_ARGS__)
#define ERR_LOG(format,...) LOG(ERR,format,##__VA_ARGS__)

#endif